package aiku.numericalcontroloa.Model.Vo.OrderManagement;

import lombok.Data;

import java.math.BigDecimal;

/**
 * 提成数据对象
 * @Author 黄广庭
 * @Date 2024/4/1 10:04
 */
@Data
public class RoyaltyVo implements Comparable<RoyaltyVo>{
    /**
     * 排名
     */
    private Integer ranking;

    /**
     * 员工工号
     */
    private String userId;

    /**
     * 员工姓名
     */
    private String nickName;

    /**
     * 用户头像
     */
    private String userImg;

    /**
     * 提成点
     */
    private Float percentage;

    /**
     * 订单数
     */
    private Integer total;

    /**
     * 销售金额
     */
    private BigDecimal salesAmount;

    /**
     * 回款金额
     */
    private BigDecimal collectionAmount;

    /**
     * 发放金额
     */
    private BigDecimal totalAmount;

    @Override
    public int compareTo(RoyaltyVo royaltyVo) {
        // 按照总金额比较
        // 首先检查空引用
        if (royaltyVo == null || royaltyVo.getTotalAmount() == null) {
            return -1; // 当前对象大于空对象
        }
        if (this.getTotalAmount() == null) {
            return 1; // 空对象小于当前对象
        }
        int compareTo = royaltyVo.getTotalAmount().compareTo(this.getTotalAmount());
        if (compareTo != 0){
            return compareTo;
        }
        // 如果金额相等，则比较订单数量
        int total = this.getTotal().compareTo(royaltyVo.getTotal());
        if (total != 0){
            return total;
        }
        // 如果金额订单数量也相等，则比较员工姓名
        return this.getNickName().compareTo(royaltyVo.getNickName());
    }
}
